<template>
	<view class="popup" v-show="visible">
		<!-- 蒙版 -->
		<view class="mask" @click="handleMaskClick"></view>
		<!-- 弹窗内容 -->
		<view class="popup-content">
			<slot></slot>
		</view>
	</view>
</template>

<script>
	export default {
		name: 'CustomPopup',
		props: {
			// 是否显示弹窗
			visible: {
				type: Boolean,
				default: false
			},
			// 点击蒙版是否关闭弹窗
			maskClickClose: {
				type: Boolean,
				default: true
			}
		},
		 watch: {
		    visible(newVal) {
		      // 可选：监听变化，确保逻辑触发
		      console.log('pop visible changed:', newVal);
		    }
		  },
		methods: {
			// 处理蒙版点击事件
			// pop.vue 的 handleMaskClick 方法
			handleMaskClick() {
				if (this.maskClickClose) {
					this.$emit('update:visible', false); // 必须使用 update:visible 事件
				}
			}
		}
	};
</script>

<style scoped>
	.popup {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 999;
	}

	.mask {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, 0.85);
	}

	.popup-content {
		/* background-color: #fff; */
		z-index: 1002;
		/* padding: 20px; */
	
		border-radius: 8px;
		z-index: 1002;
		/* 让弹窗内容层级高于蒙版 */
		position: relative;
		/* 设置为相对定位 */
	}
</style>